package Data
{
	import org.flixel.*;
	/**
	 * Standard color values
	 * @author Lachlan McInnes
	 */
	public class Color 
	{
		static public const White:uint = 0xffffffff;
		static public const Grey:uint = 0xff888888;
		static public const Black:uint = 0xff000000;
		static public const Red:uint = 0xffff0000;
		static public const Orange:uint = 0xffff8800;
		static public const Yellow:uint = 0xffffff00;
		static public const Green:uint = 0xff00ff00;
		static public const Blue:uint = 0xff0000ff;
		static public const Indigo:uint = 0xff4B0082;
		static public const Purple:uint = 0xff8800ff;
		static public const Pink:uint = 0xffff00ff;
		static public const Teal:uint = 0xff00ffff;
		
		//Without Alpha
		static public const WhiteWOA:uint = 0xffffff;
		static public const GreyWOA:uint = 0x888888;
		static public const BlackWOA:uint = 0x000000;
		static public const RedWOA:uint = 0xff0000;
		static public const OrangeWOA:uint = 0xff8800;
		static public const YellowWOA:uint = 0xffff00;
		static public const GreenWOA:uint = 0x00ff00;
		static public const BlueWOA:uint = 0x0000ff;
		static public const IndigoWOA:uint = 0x4B0082;
		static public const PurpleWOA:uint = 0x8800ff;
		static public const PinkWOA:uint = 0xff00ff;
		static public const TealWOA:uint = 0x00ffff;
		
		//Characters
		static public const CharSpouse:uint = 0x3d4a9f;
		static public const CharDaughter:uint = 0xefd764;
		static public const CharButler:uint = 0xffffff;
		static public const CharFriend:uint = 0xc5b3b4;
		static public const CharBusiness:uint = 0xe36364;
		static public const CharLover:uint = 0xeb529e;
		
		//pass in a color and the function returns the value of the next color in a rainbow cycle
		//currently contains ROYGBP colors
		static public function UpdateRainbow(color:uint):uint
		{
			switch (color)
			{
				case Red:
					return Orange;
					break;
				case Orange:
					return Yellow;
					break;
				case Yellow:
					return Green;
					break;
				case Green:
					return Blue;
					break;
				case Blue:
					return Purple;
					break;
				case Purple:
					return Red;
					break;
			}
			
			return color;
		}
		
		static public function Random():uint
		{
			return (uint) (FlxG.random() * 0x00ffffff + 0xff000000);
		}
		
		static public function RandomWOA():uint
		{
			return (uint) (FlxG.random() * 0xffffff);
		}
	}

}